Who is this for?

Developers interested in leveraging the Unity Machine Learning Agents toolkit on Arm devices.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Use Arm Neon intrinsics in your Unity C# scripts
  • Optimize your code
  • Collect and compare performance data using the Unity Profiler and Analyzer tools

Prerequisites

Before starting, you will need the following:

  • Basic knowledge of Unity and C#
  • Recent Android device, such as a mobile phone or tablet
  • Desktop computer capable of running Unity
  • Unity version compatible with Unity Burst compiler 1.5 or later

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll optimize Unity collision detection for Android by comparing Plain, Burst, and hand-written Arm Neon implementations. First, you’ll set up Unity and the collision sample, review character-wall and character-character detection, and apply Burst and Neon changes. You’ll build and profile each mode on your Android device, then use Unity Profile Analyzer to compare the captured data and follow profiling practices.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
Where do I switch the project to the unoptimized version?
Open Assets/BurstNeonCollisions/Scripts/CollisionCalculationScript.cs and change line 66 to public const Mode codeMode = Mode.Plain; to select the unoptimized mode for your initial measurements.
How do I enable or update the Burst compiler in Unity?
From Window, select Packet Management > Package Manager. Set Packages to Unity Registry, search for Burst, select it, and select Install if it’s not already ticked.
Which Unity and Burst versions should I use?
To match the environment used in the Learning Path, use Unity v6.3 and Burst 1.8.28.
Which parts of the sample are affected by the optimization steps?
Review the character-wall and character-character collision functions. In Plain mode, DoWallsPlain() loops through all characters and walls, while DoCharactersPlain() checks each character against the others; the code assumes a character can hit up to two walls.
Why should I compare Burst and Neon performance?
Burst can auto-vectorize your code efficiently, so hand-written Neon doesn’t always improve performance. Profile your app before and after adding Neon. If performance doesn’t improve, Burst might produce better-optimized code.
Next